package com.yxy.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/**
 * @author yuxiaoyang
 * @date 2021-02-03
 * @description 日期时间处理工具类
 */
public class DateTimeUtils {
  public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  public static SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  public static SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy/MM/dd");
  public static DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");

  /**
   * 获取某个时间对应的0点时间(即一天的最开始时间)
   *
   * @param time 某天的时间点,例如 2021-02-03 09:32:58
   * @return 例如 2021-02-03 00:00:00
   */
  public static Date getZeroTimeOfOneDay(Date time) throws ParseException {
    String zeroTimeStr = sdf.format(time) + " 00:00:00";
    return sdf2.parse(zeroTimeStr);
  }

  /**
   * 获取某个时间对应的最晚时间(即一天的最晚时间)
   *
   * @param time 某天的时间点,例如 2021-02-03 09:32:58
   * @return 例如 2021-02-03 23:59:59
   */
  public static Date getEndTimeOfOneDay(Date time) throws ParseException {
    String endTimeStr = sdf.format(time) + " 23:59:59";
    return sdf2.parse(endTimeStr);
  }

  /**
   * 将Date日期 转换成字符串格式
   * @param time 待转换日期
   * @param sdf
   * @return
   */
  public static String convertDateToString(Date time, SimpleDateFormat sdf) {
    return sdf.format(time);
  }
}
